import cv2
import numpy as np
from matplotlib import pyplot as plt
import random,time

from PIL import ImageGrab
import pyautogui
import cv2
import numpy as np
import time
# from matplotlib import pyplot as plt

cs = cv2.imread('cs.png', 0)#测试
zd = cv2.imread('zd.jpg', 0)#组队
yqfy = cv2.imread('yqfy.png', 0)#妖气封印
jr = cv2.imread('jr.jpg', 0)#进入
zb = cv2.imread('zb.jpg', 0)#准备
js = cv2.imread('js.jpg', 0)#结束
sb = cv2.imread('sb.jpg', 0)#结束

# w, h = template.shape[::-1]


# im0 =ImageGrab.grab((0, 0, 2880, 1800))
# im0.show()
# im0 =ImageGrab.grab((0, 1500, 2880, 1800))
# im0.show()

# pyautogui.scroll(200) #鼠标滚轮   可以用负号

i=0
while 1:
    time1 = time.time()
    # time.sleep(2)
    img_rgb = np.array(ImageGrab.grab().convert('RGB'))#屏幕截图
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)

    #组队
    res = cv2.matchTemplate(img_gray, zd, cv2.TM_CCOEFF_NORMED)# 大图 ，目标 ，模式
    threshold = 0.8  #阈值 图片相识度
    loc = np.where(res >= threshold)
    for pt in zip(*loc[::-1]):
        # cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), )#在图片选中位置画线框

        pyautogui.moveTo(int(pt[0] ), int(pt[1] )) #鼠标移动到坐标位置
        pyautogui.click() #鼠标点击
        print("点击组队")
        break


    # 加入
    img_rgb = np.array(ImageGrab.grab().convert('RGB'))  # 屏幕截图
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    res = cv2.matchTemplate(img_gray, jr, cv2.TM_CCOEFF_NORMED)  # 大图 ，目标 ，模式
    threshold = 0.8 # 阈值 图片相识度
    loc = np.where(res >= threshold)
    for pt in zip(*loc[::-1]):
        # cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), )#在图片选中位置画线框

        pyautogui.moveTo(int(pt[0]), int(pt[1]))  # 鼠标移动到坐标位置
        pyautogui.click()  # 鼠标点击
        print("点击加入")
        time.sleep(random.randint(1, 2))
        break
    # 妖气封印
    res = cv2.matchTemplate(img_gray, yqfy, cv2.TM_CCOEFF_NORMED)  # 大图 ，目标 ，模式
    threshold = 0.8  # 阈值 图片相识度
    loc = np.where(res >= threshold)
    for pt in zip(*loc[::-1]):
        # cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), )#在图片选中位置画线框

        pyautogui.moveTo(int(pt[0]), int(pt[1]))  # 鼠标移动到坐标位置
        pyautogui.click()  # 鼠标点击
        print("点击妖气封印")

        break



    img_rgb = np.array(ImageGrab.grab().convert('RGB'))  # 屏幕截图
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    #准备
    res = cv2.matchTemplate(img_gray, zb, cv2.TM_CCOEFF_NORMED)# 大图 ，目标 ，模式
    threshold = 0.8  #阈值 图片相识度
    loc = np.where(res >= threshold)
    for pt in zip(*loc[::-1]):
        time.sleep(random.randint(1, 5))
        # cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), )#在图片选中位置画线框
        print("准备")
        pyautogui.moveTo(int(pt[0] ), int(pt[1] )) #鼠标移动到坐标位置
        pyautogui.click() #鼠标点击
        break


    #结束
    res = cv2.matchTemplate(img_gray, js, cv2.TM_CCOEFF_NORMED)# 大图 ，目标 ，模式
    threshold = 0.8  #阈值 图片相识度
    loc = np.where(res >= threshold)
    for pt in zip(*loc[::-1]):
        time.sleep(random.randint(1, 3))
        # cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), )#在图片选中位置画线框

        pyautogui.moveTo(int(pt[0] ), int(pt[1] )) #鼠标移动到坐标位置
        pyautogui.click() #鼠标点击
        break



    #失败
    res = cv2.matchTemplate(img_gray, sb, cv2.TM_CCOEFF_NORMED)# 大图 ，目标 ，模式
    threshold = 0.8  #阈值 图片相识度
    loc = np.where(res >= threshold)
    for pt in zip(*loc[::-1]):
        time.sleep(random.randint(1, 3))
        # cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), )#在图片选中位置画线框

        pyautogui.moveTo(int(pt[0] ), int(pt[1] )) #鼠标移动到坐标位置
        pyautogui.click() #鼠标点击
        break


    time2 = time.time()
    print(time2 - time1)

